package day05;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Scanner;

import org.junit.Test;

/**
 * 要求用户输入若干员工信息，格式为：
 * name,age,gender,salary,hiredate;name,age,gender,salary,hiredate;....
 * 例如:
 * 张三,25,男,5000,2006-02-15;李四,26,女,6000,2007-12-24;...
 * 然后将每个员工信息解析成Emp对象。并存入到一个List集合中。
 * 并对集合排序，然后输出每个员工信息。
 * 
 * 再根据员工的入职时间排序，入职晚的在前，早的在后并
 * 输出每个员工的信息。
 * @author Bonnie
 *
 */
public class Test03 {
	@Test
	public void test() throws ParseException {
		Scanner console = new Scanner(System.in);
		System.out.print("请输入员工信息：");
		String str = console.nextLine();
		String[] empInfo = str.split(";");
		List<Emp> list = new ArrayList<Emp>();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		for (int i = 0; i < empInfo.length; i++) {
			String[] ss = empInfo[i].split(",");
			String name = ss[0];
			int age = Integer.parseInt(ss[1]);
			String gender = ss[2];
			int salary = Integer.parseInt(ss[3]);
			Date date = sdf.parse(ss[4]);
			Emp emp = new Emp(name, age, gender, salary, date);
			list.add(emp);
		}
		System.out.println(list);
		Collections.sort(list, new Comparator<Emp>() {

			@Override
			public int compare(Emp o1, Emp o2) {
				long time = o1.getHiredate().getTime() - o2.getHiredate().getTime();
				return time > 0 ? -1 : 1;
			}
			
		});
		System.out.println("排序后：");
		System.out.println(list);
		console.close();
	}
}
